package com.fowo.api.model.issu.order;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 订单管理订单标发 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class IssuOrderImportPo {

  /** 系统单号 */
  @ExcelProperty("*系统单号")
  @NotBlank(message = "系统单号不能为空")
  @Size(max = 50, message = "系统单号长度不能超过50")
  private String orderId;

  /** 本地状态 */
  @ExcelProperty("*本地状态")
  @NotBlank(message = "本地状态不能为空")
  private String status;

  /** 店铺 */
  @ExcelProperty("店铺")
  @Size(max = 50, message = "店铺长度不能超过50")
  private String shopInfoShopName;

  @ExcelIgnore
  @Schema(title = "店铺")
  private String shopInfo;

  /** 站点 */
  @ExcelProperty("站点")
  @Size(max = 50, message = "站点长度不能超过50")
  private String siteName;

  @ExcelIgnore
  @Schema(title = "站点")
  private String site;

  /** 客选物流 */
  @ExcelProperty("客选物流")
  @Size(max = 50, message = "客选物流长度不能超过50")
  private String deliveryLogisticsLabel;

  @ExcelIgnore
  @Schema(title = "客选物流")
  private String deliveryLogistics;

  /** 物流方式 */
  @ExcelProperty("物流方式")
  @Size(max = 50, message = "物流方式长度不能超过50")
  private String deliveryLogisticsChannelLabel;

  @ExcelIgnore
  @Schema(title = "物流方式")
  private String deliveryLogisticsChannel;

  /** 标发单号 */
  @ExcelProperty("*标发单号")
  @NotBlank(message = "标发单号不能为空")
  @Size(max = 50, message = "标发单号长度不能超过50")
  private String deliveryIssuId;

  /** 线上状态 */
  @ExcelProperty("线上状态")
  @Size(max = 50, message = "线上状态长度不能超过50")
  private String onlineStatus;

  /** 标发状态 */
  @ExcelProperty("标发状态")
  private String issuStatus;

  /** 标发状态内容 */
  @ExcelProperty("标发状态内容")
  @Size(max = 2048, message = "标发状态内容长度不能超过2048")
  private String issuStatusExplain;

  /** 标发次数 */
  @ExcelProperty("标发次数")
  @IntegerString(message = "标发次数数值格式不正确", label = "标发次数")
  private String issuNumber;

  /** 标发时间 */
  @ExcelProperty("标发时间")
  @DateTimeString(message = "标发时间不是有效的时间日期格式")
  private String issuTime;

  /** 运单号 */
  @ExcelProperty("运单号")
  @Size(max = 50, message = "运单号长度不能超过50")
  private String deliveryWaybillId;

  /** 跟踪号 */
  @ExcelProperty("跟踪号")
  @Size(max = 50, message = "跟踪号长度不能超过50")
  private String deliveryTrackId;
}
